//#include<stdio.h>
//#include<string.h>
//#include<assert.h>
//void* my_memcpy(void* p, const void* q, size_t n)
//{
//	void* t = p;
//	assert( p && q);
//	while (n--)
//	{
//		*(char *)p = *(char *)q;
//		p = (char *)p + 1;
//		q = (char*)q + 1;
//	}
//	return t;
//
//}
//
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int arr1[20] = { 0 };
//	my_memcpy (arr1, arr, 20);
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", arr1[i]);
//	}
//
//	return 0;
//}

#include<stdio.h>
void* my_memmove(void* des, const void* src, size_t num)
{
	void* ret = des;
	if (src < des)
	{
		while (num--)
		{
			*((char*)des) = *((char*)src);
			des = (char*)des + 1;
			src = (char*)src + 1;

		}
	}
	else
	{
		while (num--)
		{
			*((char*)des+num) = *((char*)src+num);

		}
	}

	return ret;
}
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	my_memmove(arr, arr + 2, 20);
	
	return 0;
}